home *** CD-ROM | disk | FTP | other *** search
/ BMUG Revelations / BMUG Revelations.toast / Programming / Programming Languages / Harvest C / MPW Int & Lib / Interfaces / Events.h < prev    next >
Text File  |  1991-04-17  |  3KB  |  134 lines

  1. /************************************************************
  2.  
  3. Created: Monday, January 14, 1991 at 4:39 PM
  4.     Events.h
  5.     C Interface to the Macintosh Libraries
  6.  
  7.  
  8.         Copyright Apple Computer, Inc.    1985-1989
  9.         All rights reserved
  10.  
  11. ************************************************************/
  12.  
  13.  
  14. #ifndef __EVENTS__
  15. #define __EVENTS__
  16.  
  17. #ifndef __TYPES__
  18. #include <Types.h>
  19. #endif
  20.  
  21. #ifndef __QUICKDRAW__
  22. #include <Quickdraw.h>
  23. #endif
  24.  
  25.  
  26. enum {
  27.  
  28.     nullEvent = 0,
  29.     mouseDown = 1,
  30.     mouseUp = 2,
  31.     keyDown = 3,
  32.     keyUp = 4,
  33.     autoKey = 5,
  34.     updateEvt = 6,
  35.     diskEvt = 7,
  36.     activateEvt = 8,
  37.     osEvt = 15,
  38.  
  39. /* event mask equates */
  40.     mDownMask = 2,
  41.     mUpMask = 4,
  42.     keyDownMask = 8,
  43.     keyUpMask = 16,
  44.     autoKeyMask = 32,
  45.     updateMask = 64,
  46.     diskMask = 128,
  47.     activMask = 256,
  48.     highLevelEventMask = 1024,
  49.     osMask = -32768
  50. };
  51. enum {
  52.     everyEvent = -1,
  53.  
  54. /* event message equates */
  55.     charCodeMask = 0x000000FF,
  56.     keyCodeMask = 0x0000FF00,
  57.     adbAddrMask = 0x00FF0000,
  58.     osEvtMessageMask = 0xFF000000,
  59.  
  60. /* OSEvent Messages */
  61.     mouseMovedMessage = 0xFA,
  62.     suspendResumeMessage = 0x01,
  63.     resumeFlag = 1,             /* bit 0 of message indicates resume vs suspend */
  64.     convertClipboardFlag = 2,   /* bit 1 in resume message indicates clipboard change */
  65.  
  66. /* modifiers */
  67.     activeFlag = 1,             /*bit 0 of modifiers for activate event*/
  68.     btnState = 128,             /*Bit 7 of low byte is mouse button state*/
  69.     cmdKey = 256,               /*Bit 0*/
  70.     shiftKey = 512,             /*Bit 1*/
  71.     alphaLock = 1024,           /*Bit 2 */
  72.     optionKey = 2048,           /*Bit 3 of high byte*/
  73.     controlKey = 4096,
  74.  
  75. /* obsolete equates*/
  76.     networkEvt = 10,
  77.     driverEvt = 11,
  78.     app1Evt = 12,
  79.     app2Evt = 13
  80. };
  81. enum {
  82.     app3Evt = 14,
  83.     app4Evt = 15,
  84.     networkMask = 1024,
  85.     driverMask = 2048,
  86.     app1Mask = 4096,
  87.     app2Mask = 8192,
  88.     app3Mask = 16384,
  89.     app4Mask = -32768
  90. };
  91.  
  92. struct EventRecord {
  93.     short what;
  94.     long message;
  95.     long when;
  96.     Point where;
  97.     short modifiers;
  98. };
  99.  
  100. typedef struct EventRecord EventRecord;
  101.  
  102.  
  103. typedef long KeyMap[4];
  104.  
  105. #ifdef __cplusplus
  106. extern "C" {
  107. #endif
  108. pascal Boolean GetNextEvent(short eventMask,EventRecord *theEvent)
  109.     = 0xA970; 
  110. pascal Boolean WaitNextEvent(short eventMask,EventRecord *theEvent,unsigned long sleep,
  111.     RgnHandle mouseRgn)
  112.     = 0xA860; 
  113. pascal Boolean EventAvail(short eventMask,EventRecord *theEvent)
  114.     = 0xA971; 
  115. pascal void GetMouse(Point *mouseLoc)
  116.     = 0xA972; 
  117. pascal Boolean Button(void)
  118.     = 0xA974; 
  119. pascal Boolean StillDown(void)
  120.     = 0xA973; 
  121. pascal Boolean WaitMouseUp(void)
  122.     = 0xA977; 
  123. pascal void GetKeys(KeyMap theKeys)
  124.     = 0xA976; 
  125. pascal unsigned long TickCount(void)
  126.     = 0xA975; 
  127. #define GetDblTime() (* (unsigned long*) 0x02F0)
  128. #define GetCaretTime() (* (unsigned long*) 0x02F4)
  129. #ifdef __cplusplus
  130. }
  131. #endif
  132.  
  133. #endif
  134.